#ifndef MTM_EX5_H_
#define MTM_EX5_H_

#include <exception>

using std::exception;

namespace mtm {

class IllegalArguments: public exception {
};

class UserAlreadyConnectedException: public exception {
};

class UserNotConnectedException: public exception {
};

class AlreadyMemberInGroupException: public exception {

};

class GroupAlreadyExistsException: public exception {

};

class NoSuchGroupException: public exception {

};

class NotInGroupException: public exception {

};

class RecipeAlreadyExistsException: public exception {

};

class NoSuchRecipeInGroupException: public exception {

};

class NoSuchRecipeInCollectionException: public exception {

};

class AppreciateYourOwnWorkException: public exception {

};

class ForeverAloneException: public exception {

};

class NoAwaitingJoinRequestException: public exception {
};

class NoAwaitingLeaveRequestException: public exception {
};

class CannotLeaveException: public exception {

};

}
#endif /* MTM_EX5_H_ */
